package org.jetlinks.pro.dashboard;

import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * 仪表对象: CPU,内存
 *
 * @author zhouhao
 * @since 1.0
 */
public interface DashboardObject {

    /**
     * 仪表对象描述信息
     *
     * @return 描述信息
     */
    ObjectDefinition getDefinition();

    /**
     * 获取此对象的全部监控指标
     * @return 监控指标
     */
    Flux<Measurement> getMeasurements();

    /**
     * 根据ID获取监控指标
     * @param id ID
     * @return 监控指标
     */
    Mono<Measurement> getMeasurement(String id);

}
